home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / news / inn1.000 / inn1.4sec-linux-src.tar / inn / lib / resource.c < prev    next >
C/C++ Source or Header  |  1992-07-24  |  1KB  |  58 lines

  1. /*  $Revision: 1.3 $
  2. **
  3. */
  4. #include <stdio.h>
  5. #include <sys/types.h>
  6. #include "configdata.h"
  7. #include "clibrary.h"
  8. #include "macros.h"
  9.  
  10.  
  11. #if    defined(RES_RUSAGE)
  12. #include <sys/time.h>
  13. #include <sys/resource.h>
  14.  
  15. #define TIMEVALasDOUBLE(t)    \
  16.     ((double)(t).tv_sec + ((double)(t).tv_usec) / 1000000.0)
  17.  
  18. int
  19. GetResourceUsage(usertime, systime)
  20.     double    *usertime;
  21.     double    *systime;
  22. {
  23.     struct rusage    R;
  24.  
  25.     if (getrusage(RUSAGE_SELF, &R) < 0)
  26.     return -1;
  27.     *usertime = TIMEVALasDOUBLE(R.ru_utime);
  28.     *systime = TIMEVALasDOUBLE(R.ru_stime);
  29.     return 0;
  30. }
  31. #endif    /* defined(RES_RUSAGE) */
  32.  
  33.  
  34. #if    defined(RES_TIMES)
  35. #include <sys/param.h>
  36. #include <sys/times.h>
  37.  
  38. #if    !defined(HZ)
  39. #define HZ    60
  40. #endif    /* !defined(HZ) */
  41.  
  42. #define CPUTIMEasDOUBLE(t1, t2)        ((double)(t1 + t2) / (double)HZ)
  43.  
  44. int
  45. GetResourceUsage(usertime, systime)
  46.     double    *usertime;
  47.     double    *systime;
  48. {
  49.     struct tms    T;
  50.  
  51.     if (times(&T) == -1)
  52.     return -1;
  53.     *usertime = CPUTIMEasDOUBLE(T.tms_utime, T.tms_cutime);
  54.     *systime = CPUTIMEasDOUBLE(T.tms_stime, T.tms_cstime);
  55.     return 0;
  56. }
  57. #endif    /* defined(RES_TIMES) */
  58.